<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // async 及 await需要注意的地方
      // 1. 等待会等待 resolve 或者是reject之后执行下面的代码
      //   function fn1() {
      //     return new Promise((resolve) => {
      //       setTimeout(() => {
      //         resolve(111);
      //       }, 2000);
      //     });
      //   }

      //   (async function () {
      //     let res = await fn1();
      //     console.log(res);
      //     console.log(2222);
      //   })();

      //  2. await 之后是异步代码，之前是同步代码。await 模拟then的执行，await之后是微任务
      //   setTimeout(() => {
      //     console.log(5555);
      //   });

      //   async function fn() {
      //     console.log(1111);
      //     await new Promise((resolve) => {
      //       resolve(333);
      //     });
      //     console.log(444);
      //   }

      //   fn();
      //   console.log(222);

      //   3. async 函数的返还值和 then的返还值一致；
      //   async function fn() {
      //     await Promise.resolve(111);
      //     // return 111;
      //     // return "success";
      //     return Promise.resolve("success");
      //     // throw new Error("错误了");
      //   }

      //   let res = fn();
      //   console.log(res); // promise实例化对象
    </script>
  </body>
</html>
